package com.jz.netthings.analysis.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.jz.netthings.analysis.bean.ProviderRoundBase;
import com.baomidou.mybatisplus.service.IService;
import com.jz.netthings.exception.AdscmSystemException;
import com.jz.netthings.support.AdscmPage;

import java.util.List;

/**
 * <p>
 * 供浆者轮次表的基础统计数据 服务类
 * </p>
 *
 * @author yangyunyun
 * @since 2019-07-16
 */
public interface ProviderRoundBaseService extends IService<ProviderRoundBase> {

    /**
     * 根据供浆者ID，构造这个供浆者的轮次基础统计数据
     * @param providerId
     * @return
     * @throws AdscmSystemException
     */
    ProviderRoundBase loadRoundBase(Long providerId) throws AdscmSystemException;

    /**
     * 构造所有供浆者的轮次基础统计数据
     * @throws AdscmSystemException
     */
    void loadAllProviderRoundBase() throws AdscmSystemException;

    /**
     * 查询某个村落某天登记的所有浆员的轮次表
     * @param villageName 村落名称
     * @param date 登记日期
     * @param isNew 是否新浆员
     * @param isPositive 是否积极浆员
     * @return
     * @throws AdscmSystemException
     */
    List<ProviderRoundBase> getRegProviderRound(String villageName, String date, boolean isNew, boolean isPositive) throws AdscmSystemException;

    /**
     * 分页查询某个村落某个类型的浆员的轮次信息
     * @param villageName 村落名称
     * @param providerType 浆员类型 ：所有浆员、今年已进站浆员......
     * @param current 当前页
     * @param size 每页条数
     * @return
     * @throws AdscmSystemException
     */
    AdscmPage<ProviderRoundBase> getProviderRound(String villageName, String providerType, int current, int size) throws AdscmSystemException;

    /**
     * 轮次表中获取护士、义工
     * @param providerRoundBase
     * @throws AdscmSystemException
     */
    void getNurseYg(ProviderRoundBase providerRoundBase)throws AdscmSystemException;

}
